/**
 * Tencent is pleased to support the open source community by making Tars available.
 *
 * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
 *
 * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * https://opensource.org/licenses/BSD-3-Clause
 *
 * Unless required by applicable law or agreed to in writing, software distributed
 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */
// **********************************************************************
// This file was generated by a TARS parser!
// TARS version 1.0.1.
// **********************************************************************

package com.qq.tars.support.notify.prx;

import com.qq.tars.protocol.annotation.*;
import com.qq.tars.protocol.tars.annotation.*;
import com.qq.tars.common.support.Holder;

@Servant
public interface NotifyPrx {
	/**
	 * 框架上报的信息, 保存于数据库中
	 * @param sServerName, server name
	 * @param sThreadId, server current thread id
	 * @param sMessage, message
	 **/
	public void reportServer(String sServerName, String sThreadId, String sMessage);
	/**
	 * 框架上报的信息, 保存于数据库中
	 * @param sServerName, server name
	 * @param sThreadId, server current thread id
	 * @param sMessage, message
	 **/
	public void reportServer(String sServerName, String sThreadId, String sMessage, @TarsContext java.util.Map<String, String> ctx);
	/**
	 * 框架上报的信息, 保存于数据库中
	 * @param sServerName, server name
	 * @param sThreadId, server current thread id
	 * @param sMessage, message
	 **/
	public void async_reportServer(@TarsCallback NotifyPrxCallback callback, String sServerName, String sThreadId, String sMessage);
	/**
	 * 框架上报的信息, 保存于数据库中
	 * @param sServerName, server name
	 * @param sThreadId, server current thread id
	 * @param sMessage, message
	 **/
	public void async_reportServer(@TarsCallback NotifyPrxCallback callback, String sServerName, String sThreadId, String sMessage, @TarsContext java.util.Map<String, String> ctx);
	/**
	 * 业务上报的信息, 用于报警
	 * @param sServerName, server name
	 * @param level, notify level
	 * @param sMessage, message
	 **/
	public void notifyServer(String sServerName, int level, String sMessage);
	/**
	 * 业务上报的信息, 用于报警
	 * @param sServerName, server name
	 * @param level, notify level
	 * @param sMessage, message
	 **/
	public void notifyServer(String sServerName, int level, String sMessage, @TarsContext java.util.Map<String, String> ctx);
	/**
	 * 业务上报的信息, 用于报警
	 * @param sServerName, server name
	 * @param level, notify level
	 * @param sMessage, message
	 **/
	public void async_notifyServer(@TarsCallback NotifyPrxCallback callback, String sServerName, int level, String sMessage);
	/**
	 * 业务上报的信息, 用于报警
	 * @param sServerName, server name
	 * @param level, notify level
	 * @param sMessage, message
	 **/
	public void async_notifyServer(@TarsCallback NotifyPrxCallback callback, String sServerName, int level, String sMessage, @TarsContext java.util.Map<String, String> ctx);
	/**
	 * 获取上报信息
	 * @param sServerName, server name
	 * @param out , notify info detail
	 * @return int 0=success, others=failed
	 **/
	public int getNotifyInfo(NotifyKey stKey, @TarsHolder Holder<NotifyInfo> stInfo);
	/**
	 * 获取上报信息
	 * @param sServerName, server name
	 * @param out , notify info detail
	 * @return int 0=success, others=failed
	 **/
	public int getNotifyInfo(NotifyKey stKey, @TarsHolder Holder<NotifyInfo> stInfo, @TarsContext java.util.Map<String, String> ctx);
	/**
	 * 获取上报信息
	 * @param sServerName, server name
	 * @param out , notify info detail
	 * @return int 0=success, others=failed
	 **/
	public void async_getNotifyInfo(@TarsCallback NotifyPrxCallback callback, NotifyKey stKey);
	/**
	 * 获取上报信息
	 * @param sServerName, server name
	 * @param out , notify info detail
	 * @return int 0=success, others=failed
	 **/
	public void async_getNotifyInfo(@TarsCallback NotifyPrxCallback callback, NotifyKey stKey, @TarsContext java.util.Map<String, String> ctx);

	public void reportNotifyInfo(ReportInfo info);

	public void reportNotifyInfo(ReportInfo info, @TarsContext java.util.Map<String, String> ctx);

	public void async_reportNotifyInfo(@TarsCallback NotifyPrxCallback callback, ReportInfo info);

	public void async_reportNotifyInfo(@TarsCallback NotifyPrxCallback callback, ReportInfo info, @TarsContext java.util.Map<String, String> ctx);
}
